واجهة برمجة التطبيقات للتخطيط المسبق
واجهة برمجة التطبيقات Plan-ahead تهدف إلى إرسال الجداول الزمنية مسبقًا. للتحكم المباشر، راجع التحكم المباشر عبر MQTT بدلاً من ذلك.
ما تحتاجه
- اسم مستخدم وكلمة مرور لواجهة برمجة التطبيقات (API). يمكنك استخدام حساب Insights الخاص بك لذلك، أو طلب حساب API عن طريق إرسال بريد إلكتروني إلى support@eniris.be، مع ذكر رقم تسلسل جهازك بوضوح.
- بيئة تطوير بايثون (أو أي عميل MQTT آخر). يستخدم هذا الدليل مثالًا أساسيًا مكتوبًا بلغة بايثون لبدء العمل مع MQTT وإرسال الأوامر. نوصي باستخدام بايثون لسهولة الاستخدام، ولكن أي عميل MQTT آخر مدعوم.
تكوين الم رة الأولى (نقطة البداية للمستخدمين الجدد)
1. العثور على معرفات الأجهزة التي تريد التحكم بها
معرف الجهاز (يسمى أيضًا nodeId) هو معرف فريد لكل جهاز في نظامنا ويستخدم عند إرسال الأوامر إلى الأجهزة.
في الوقت الحالي، أسهل طريقة للحصول على معرفاتك هي عن طريق التنقل إلى:
http://<CONTROLLER_IP>/debugger
قم بتوسيع صندوق "Metadata"، ودوّن كل nodeId من جميع الأجهزة التي ترغب في التحكم بها. ستحتاج إلى هذه المعرفات في خطوة لاحقة.

2. إضافة أجهزتك
قم بتسجيل الدخول إلى واجهة التشغيل وتأكد من أن الأجهزة قد أضيفت إلى SmartgridOne Controller.
3. إضافة إشارة خارجية لواجهة برمجة التطبيقات




4. إدخال رمز جامع البيانات
ببساطة أدخل رقم تسلسل SmartgridOne Controller هنا، وانقر على إرسال.
5. تحديد الأجهزة للإدراج
في هذه الصفحة، لديك الخيار لضم أو استثناء الأجهزة للتحكم عن بُعد. تأكد من تحديد جميع مربعات الاختيار للأجهزة التي ترغب في إدراجها.

6. تمت إضافة مصدر البيانات
لقد تم تفعيل واجهة التحكم عن بعد على SmartgridOne Controller. يمكنك الآن البدء في إرسال أوامرك إلى الأجهزة.
لا تنسى إعداد نظام احتياطي على SmartgridOne Controller! يجب تكوين وضع التحكم المحلي بالإضافة إلى إشارات الاتصال الخارجية التي ترسلها. يتم استخدام التحكم المحلي كاحتياطي في حال فقدان SmartgridOne Controller للإنترنت أو وجود أسباب أخرى تجعل إشارة واجهة برمجة التطبيقات غير قادرة على الوصول إلى SmartgridOne Controller.
إرسال أوامر التحكم عن بُعد باستخدام بايثون
فيما يلي مقتطف بايثون حول كيفية التحكم في الطاقة الشمسية أ و البطارية.
راجع الوثيقة دليل التطبيق - نقاط ضبط عن بُعد للحصول على شرح أكثر اكتمالاً مع جميع السياسات.
الحزمة المطلوبة:
pip install eniris
# %% Imports
from eniris import ApiDriver
from eniris.point import Point
from eniris.point.writer import (PointDuplicateFilter, DirectPointToTelemessageWriter)
from eniris.telemessage.writer import PooledTelemessageWriter
from datetime import datetime, timezone
# %% Constants
COMMAND_UNTIL = '2024-04-16T10:26:00+02:00' # YYYY-MM-DDTHH:MM:SS+00:00
SN = '<REPLACE>'
COMMAND = fields = {'policy': 2, 'powerSetpoint_W': 0.0} # 0: Default (self-consumption); 2: Follow-setpoint
# %% Start curtailment
curtail_until = datetime.fromisoformat(COMMAND_UNTIL).astimezone(timezone.utc)
print(f'Following command until: {curtail_until}')
apiUsername = "<REPLACE>"
apiPassword = "<REPLACE>"
# Create an API drivers and a point writer with the desired functionality
driver = ApiDriver(apiUsername, apiPassword)
writer = PointDuplicateFilter(
DirectPointToTelemessageWriter(
PooledTelemessageWriter(
authorizationHeaderFunction=driver.accesstoken,
params={"u": SN},
)
)
)
namespace = {'database': 'SGC', 'retentionPolicy': 'rp_one_s'}
tags = {
"serialNr": SN,
"nodeId": '<REPLACE>',
}
writer.writePoints([Point(namespace, 'remoteControlSignals', curtail_until, tags, fields)])
writer.flush()
print('Dispatched')
أعطِ اهتمامًا خاصًا لـ:
- 'COMMAND_UNTIL': هذا Timestamp مع الوعي بالمنطقة الزمنية الذي يحدد وقت الانتهاء من أمرك.
- 'COMMAND': يجب تغييره وفقًا للأمر الذي ترغب في تنفيذه.
- على سبيل المثال: بالنسبة للبطاريات، السياسة 2 مع powerSetpoint_W عند 1000 ستقوم بشحن البطارية بقدرة 1 كيلو وات.
- بالنسبة للطاقة الشمسية، السياسة 2 مع powerSetpoint_W عند 0 ستعطل إنتاج الطاقة الشمسية.
- بعد انتهاء أمرك، ستعود تلقائيًا إلى التحكم الافتراضي (كما هو مكون في SmartgridOne Controller).
- (تدعم السياسات الأكثر تقدمًا، ولكن لم تتم إضافتها إلى هذا الدليل بعد).
- متغير 'tags': يجب تغييره وفقًا لـ SmartgridOne Controller SN، حيث يجب تعيين nodeId على معرف الجهاز الذي تم استخراجه في خطوة سابقة من هذا الدليل.
راجع الوثيقة دليل التطبيق - نقاط ضبط عن بُعد للحصول على شرح أكثر اكتمالاً مع جميع السياسات.